﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using EGym.Data;

namespace EGym.BL.Forms
{
    /// <summary>
    /// Essa classe tem como objetivo representar o cadastro dos dados do Afiliado tanto para inclusão, quanto para edição e desativação.
    /// </summary>
    public class AfiliadoForm : BaseForm
    {
        #region Constantes
        private const string ESTADO_SAO_PAULO = "SP";
        private const string PESSOA_JURIDICA = "Juridica";
        private const string PESSOA_FISICA = "Fisica";
        #endregion

        #region Propriedades
        public Afiliado Afiliado { get; set; }
        public SelectList TipoDePessoa { get; internal set; }
        public SelectList TipoDeEndereco { get; internal set; }
        public SelectList Estado { get; internal set; }
        /// <summary>
        /// Retorna ou seta o valor Física (Fisica) ou Jurídica (Juridica) 
        /// </summary>
        public string TipoDePessoaSelecionada { get; set; }
        /// <summary>
        /// Retorna ou seta o valor de Tipo de Endereço
        /// </summary>
        public string TipoDeEnderecoSelecionada { get; set; }
        /// <summary>
        /// Estado Selecionado
        /// </summary>
        public string EstadoSelecionado { get; set; }

        public Endereco EnderecoDoAfiliado { get; internal set; }

        public Usuario UsuarioAdministradorAfiliacao { get; internal set; }
        
        #endregion

        #region Construtores
        public AfiliadoForm ()
        {
            MontaListaTipoDePessoa();
            TipoDePessoaSelecionada = PESSOA_JURIDICA;
            TipoDeEnderecoSelecionada = string.Empty;
            EstadoSelecionado = ESTADO_SAO_PAULO;
            EnderecoDoAfiliado = new Endereco();
            UsuarioAdministradorAfiliacao = new Usuario();
        }
        #endregion

        #region Métodos
        #region Privados
        public void MontaListaTipoDePessoa()
        {
            List<string> tipoDePessoaLista = new List<string>();

            tipoDePessoaLista.Add(PESSOA_JURIDICA);
            tipoDePessoaLista.Add(PESSOA_FISICA);

            TipoDePessoa = new SelectList(tipoDePessoaLista);
        }
        #endregion
        #endregion
    }
}
